using Servicios.Business.Enumerators;
using Servicios.Business.Interfaces;
using Servicios.Data.DataBases.Biblioteca;
using System.Linq;

namespace Servicios.Business.Modulo.MotorBusqueda
{
    public interface IResultadoBusqueda
    {

        /// <summary>
        /// Expone la informacion del Autor
        /// </summary>
        AutorDTO Autor { get; set; }

        /// <summary>
        /// Expone la informacion de la Editorial 
        /// </summary>
        EditorialDTO Editorial { get; set; }

        /// <summary>
        /// Expone la informacion del Material Bibliografico
        /// </summary>
        MaterialBibliograficoDTO MaterialBibliografico { get; set; }

        /// <summary>
        /// Expone la informacion del Pais
        /// </summary>
        PaisDTO Pais { get; set; }

        /// <summary>
        /// Expone la informacion del Idioma
        /// </summary>
        IdiomaDTO Idioma { get; set; }

        /// <summary>
        /// Expone la cantidad de material bibliografico
        /// </summary>
        int Cantidad { get; set; }

        /// <summary>
        /// Expone el tipo de material Bibliografico
        /// </summary>
        TipoMaterialBibliograficoDTO TipoMaterialBibliografico { get; set; }

        /// <summary>
        /// Expone la existencia del material bibliografico
        /// </summary>
        ExistenciasPorMatBib Existencia { get; set; }

        /// <summary>
        /// Expone el tipo prestamo
        /// </summary>
        TipoPrestamoDTO TipoPrestamo { get; set; }

        int Capacity { get; set; }
        int Count { get; }

        /// <summary>
        /// envia el resultado de la busqueda
        /// </summary>
        ResultadoBusqueda GetResultadoBusqueda();

        /// <summary>
        /// Envia el resultado de la busqueda
        /// </summary>
        ResultadoBusqueda GetResultadoBusqueda(int id);

        ResultadoBusqueda GetExistencia(int id);
        ResultadoBusqueda GetExistencia(int id, int existenciaId);
        ResultadoBusqueda ObtenerAutores(string prefixText, int count);
    }
}